﻿using System;

namespace Xejen.Communication
{
    /// <summary>
    /// 表示数据结构对象接口
    /// </summary>
    /// <creator>marc</creator>
    public interface IResult
    {
        /// <summary>
        /// 返回的消息码，200表示成功，其它值均为失败
        /// </summary>
        int Code { get; set; }
        /// <summary>
        /// 发生的异常
        /// </summary>
        Exception Exception { get; set; }
        /// <summary>
        /// 表示通讯是否成功
        /// </summary>
        bool IsSuccess { get; }
        /// <summary>
        /// 可序列化的结果对象
        /// <para>
        /// 由于<see cref="IResult.Exception"/>不一定能够序列化成功，所以开放此方法专门用于序列化<see cref="IResult"/>对象
        /// </para>
        /// </summary>
        /// <returns></returns>
        object GetSerializableObject();
    }
}